package com.xd.springaiagent.tools.tavily;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "spring.ai.tavily")
public class TavilySearchProperties {

    private String apiKey;

    private String topic = "general";

    private String searchDepth = "basic";

    private int maxResults = 5;

    private int chunksPerSource = 3;

    private int days = 7;

    private boolean includeRawContent = false;

    private boolean includeImages = false;

    private boolean includeImageDescriptions = false;


    public TavilySearchProperties() {
    }

    public TavilySearchProperties(String apiKey, String topic, String searchDepth, int maxResults, int chunksPerSource, int days, boolean includeRawContent, boolean includeImages, boolean includeImageDescriptions) {
        this.apiKey = apiKey;
        this.topic = topic;
        this.searchDepth = searchDepth;
        this.maxResults = maxResults;
        this.chunksPerSource = chunksPerSource;
        this.days = days;
        this.includeRawContent = includeRawContent;
        this.includeImages = includeImages;
        this.includeImageDescriptions = includeImageDescriptions;
    }

    /**
     * 获取
     * @return apiKey
     */
    public String getApiKey() {
        return apiKey;
    }

    /**
     * 设置
     * @param apiKey
     */
    public void setApiKey(String apiKey) {
        this.apiKey = apiKey;
    }

    /**
     * 获取
     * @return topic
     */
    public String getTopic() {
        return topic;
    }

    /**
     * 设置
     * @param topic
     */
    public void setTopic(String topic) {
        this.topic = topic;
    }

    /**
     * 获取
     * @return searchDepth
     */
    public String getSearchDepth() {
        return searchDepth;
    }

    /**
     * 设置
     * @param searchDepth
     */
    public void setSearchDepth(String searchDepth) {
        this.searchDepth = searchDepth;
    }

    /**
     * 获取
     * @return maxResults
     */
    public int getMaxResults() {
        return maxResults;
    }

    /**
     * 设置
     * @param maxResults
     */
    public void setMaxResults(int maxResults) {
        this.maxResults = maxResults;
    }

    /**
     * 获取
     * @return chunksPerSource
     */
    public int getChunksPerSource() {
        return chunksPerSource;
    }

    /**
     * 设置
     * @param chunksPerSource
     */
    public void setChunksPerSource(int chunksPerSource) {
        this.chunksPerSource = chunksPerSource;
    }

    /**
     * 获取
     * @return days
     */
    public int getDays() {
        return days;
    }

    /**
     * 设置
     * @param days
     */
    public void setDays(int days) {
        this.days = days;
    }

    /**
     * 获取
     * @return includeRawContent
     */
    public boolean isIncludeRawContent() {
        return includeRawContent;
    }

    /**
     * 设置
     * @param includeRawContent
     */
    public void setIncludeRawContent(boolean includeRawContent) {
        this.includeRawContent = includeRawContent;
    }

    /**
     * 获取
     * @return includeImages
     */
    public boolean isIncludeImages() {
        return includeImages;
    }

    /**
     * 设置
     * @param includeImages
     */
    public void setIncludeImages(boolean includeImages) {
        this.includeImages = includeImages;
    }

    /**
     * 获取
     * @return includeImageDescriptions
     */
    public boolean isIncludeImageDescriptions() {
        return includeImageDescriptions;
    }

    /**
     * 设置
     * @param includeImageDescriptions
     */
    public void setIncludeImageDescriptions(boolean includeImageDescriptions) {
        this.includeImageDescriptions = includeImageDescriptions;
    }

    public String toString() {
        return "TavilySearchProperties{apiKey = " + apiKey + ", topic = " + topic + ", searchDepth = " + searchDepth + ", maxResults = " + maxResults + ", chunksPerSource = " + chunksPerSource + ", days = " + days + ", includeRawContent = " + includeRawContent + ", includeImages = " + includeImages + ", includeImageDescriptions = " + includeImageDescriptions + "}";
    }
}